﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

#if SILVERLIGHT
using System.Windows.Media;
using GameEngineSL.SilverlightCompatibility;
#else
using System.Drawing;
using System.Windows.Forms;
#endif

namespace GameEngine.Interactors
{
    /// <summary>
    /// The interface IBaseInteractor provides basic ways to interact with the GameEngine.
    /// </summary>
    public interface IPointerInteractor
    {
        /// <summary>
        /// The left mouse button has been clicked.
        /// </summary>
        /// <param name="position">
        /// Current position of the pointer.</param>
        /// <param name="button">
        /// Mouse Button which went down.</param>
        void OnMouseDown(PointF position, MouseButtons button);

        /// <summary>
        /// The pointer is moved (mouse move).
        /// </summary>
        /// <param name="position">
        /// Current position of the  pointer.</param>
        void OnMouseMove(PointF position);

        /// <summary>
        /// The pointer is deactivated (mouse up).
        /// </summary>
        /// <param name="position">
        /// Current position of the pointer.</param>
        /// <param name="button">
        /// Mouse Button which went up.</param>
        void OnMouseUp(PointF position, MouseButtons button);
    }
}
